﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using xplang.abstractions;
using xplang.run;
using xplang.expression;
using xplang.errors;

namespace xplang.rtl.operators
{

  public class IncrementableClass : NativeClass
  {

    public const String opInc = "++";
    public ClassMethod mInc;

    public IncrementableClass()
      : base(RTL.rtl, "Incrementable")
    {
      inheritance = new ClassRef[] { };
      genericParams = new GenericParamDecl[] { };
    }

    public override void registerMembers()
    {
      mInc = new NativeClassMethod(this, Modifier.None,
        xplang.rtl.RTL.booleanClass.getRef(null),
        opInc,
        new Variable[] { });
      methods.Add(mInc);
    }

    public override object newInstance()
    {
      throw new AbstractInstanciation();
    }

    public override Value getAttributeValue(Value _this, Variable variable)
    {
      throw new NotImplementedException();
    }

    public override void setAttributeValue(Value _this, Variable variable, Value obj)
    {
      throw new NotImplementedException();
    }
  }
}
